package com.iva.dao;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.iva.model.TbAlumno;
import com.iva.model.TbExpedienteMateriaHasRotacionesActividad;
import com.iva.model.TbPeriodoEvaluacion;
import com.iva.model.TbRotacionDesc;
import com.iva.model.TbRotacionesHasActividad;
import com.iva.model.VwNotas;
import com.iva.model.VwProfActividades;
@Repository
public class TareasDAOImpl implements tareasDAO {
	
	@Autowired
	SessionFactory sessionFactory;

	public List<VwProfActividades> listVwProfActividades(String filter) {
		// TODO Auto-generated method stub
		System.out.println("entro");
		String sql_mod = "from VwProfActividades";
		if(filter !=null){
			sql_mod = sql_mod + filter;
		}
		return 	 sessionFactory.getCurrentSession().createQuery(sql_mod).list();
	}

	public List<TbAlumno> listTbAlumno() {
		// TODO Auto-generated method stub
		return 	 sessionFactory.getCurrentSession().createQuery("from TbAlumno").list();
	}

	public List<VwNotas> listVwNotas(String sql) {
		// TODO Auto-generated method stub
		
		String sql_mod = "from VwNotas ";
		if(sql !=null){
			sql_mod = sql_mod + sql;
		}
		return sessionFactory.getCurrentSession().createQuery(sql_mod).list();
	}

	@Override
	public List<TbPeriodoEvaluacion> listTbPeriodoEvaluacion(String query) {
		// TODO Auto-generated method stub
		String hql = "from TbPeriodoEvaluacion";
		if(query != null){
			hql = hql + query;
		}
		return sessionFactory.getCurrentSession().createQuery(hql).list();
	}

	@Override
	public void insertRotacionHasActividad(
			TbRotacionesHasActividad rotacionActividad) {
		// TODO Auto-generated method stub
		
		sessionFactory.getCurrentSession().save(rotacionActividad);
	}

	@Override
	public void senTarea(int idRotacion_actividad) {
		// TODO Auto-generated method stub
	Query query =	sessionFactory.getCurrentSession().createSQLQuery("CALL prd_insertActividades_Alumno(:rotacion_actividad)");
	query.setParameter("rotacion_actividad", idRotacion_actividad);
	query.executeUpdate();
	
		
	}

	@Override
	public void upTarea(TbExpedienteMateriaHasRotacionesActividad actividades) {
		// TODO Auto-generated method stub
		sessionFactory.getCurrentSession().update(actividades);
	}

	@Override
	public TbExpedienteMateriaHasRotacionesActividad findTbExpedienteMateriaHasRotacionesActividad(
			int id) {
		// TODO Auto-generated method stub
		return (TbExpedienteMateriaHasRotacionesActividad) sessionFactory.getCurrentSession().get(TbExpedienteMateriaHasRotacionesActividad.class, id);
	}

	@Override
	public void updateRotacionHasActividad(
			TbRotacionesHasActividad rotacionActividad) {
		// TODO Auto-generated method stub
		sessionFactory.getCurrentSession().update(rotacionActividad);
		
	}

	@Override
	public void insertRotacionDesc(TbRotacionDesc desc) {
		// TODO Auto-generated method stub
		sessionFactory.getCurrentSession().save(desc);
		
	}

	@Override
	public TbRotacionDesc findRotacionDesc(Integer id) {
		// TODO Auto-generated method stub
		return (TbRotacionDesc) sessionFactory.getCurrentSession().get(TbRotacionDesc.class, id);
	}

	@Override
	public List<TbRotacionDesc> listRotacionDesc(String sql) {
		// TODO Auto-generated method stub
		String hql = "from TbRotacionDesc ";
		if(sql != null){
			hql = hql + sql;
		}
		return sessionFactory.getCurrentSession().createQuery(hql).list();
	}

	@Override
	public void updateRotacionesDesc(TbRotacionDesc desc) {
		// TODO Auto-generated method stub
		sessionFactory.getCurrentSession().update(desc);
	}


}
